using System.ComponentModel.DataAnnotations;
using System.Data.Entity.ModelConfiguration;

namespace RRHH.Models.Mapping
{
    public class DISTRITOMap : EntityTypeConfiguration<DISTRITO>
    {
        public DISTRITOMap()
        {
            // Primary Key
            this.HasKey(t => new { t.IDDEPARTAMENTO, t.IDPROVINCIA, t.IDDISTRITO });

            // Properties
            this.Property(t => t.IDDEPARTAMENTO)
                .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);

            this.Property(t => t.IDPROVINCIA)
                .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);

            this.Property(t => t.IDDISTRITO)
                .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);

            this.Property(t => t.DESCRIPCION)
                .HasMaxLength(255);

            this.Property(t => t.CODIGOPOSTAL)
                .HasMaxLength(20);

            this.Property(t => t.IDPAIS)
                .HasMaxLength(4);

            this.Property(t => t.ESTADO)
                .IsFixedLength()
                .HasMaxLength(1);

            this.Property(t => t.IDDEPARTAMENTOSUN)
                .HasMaxLength(2);

            this.Property(t => t.IDPROVINCIASUN)
                .HasMaxLength(2);

            this.Property(t => t.IDDISTRITOSUN)
                .HasMaxLength(2);

            this.Property(t => t.DISTRITOSUN)
                .HasMaxLength(255);

            this.Property(t => t.PROVINCIA)
                .HasMaxLength(255);

            this.Property(t => t.DEPARTAMENTO)
                .HasMaxLength(255);

            // Table & Column Mappings
            this.ToTable("DISTRITO");
            this.Property(t => t.IDDEPARTAMENTO).HasColumnName("IDDEPARTAMENTO");
            this.Property(t => t.IDPROVINCIA).HasColumnName("IDPROVINCIA");
            this.Property(t => t.IDDISTRITO).HasColumnName("IDDISTRITO");
            this.Property(t => t.DESCRIPCION).HasColumnName("DESCRIPCION");
            this.Property(t => t.CODIGOPOSTAL).HasColumnName("CODIGOPOSTAL");
            this.Property(t => t.IDPAIS).HasColumnName("IDPAIS");
            this.Property(t => t.ESTADO).HasColumnName("ESTADO");
            this.Property(t => t.IDDEPARTAMENTOSUN).HasColumnName("IDDEPARTAMENTOSUN");
            this.Property(t => t.IDPROVINCIASUN).HasColumnName("IDPROVINCIASUN");
            this.Property(t => t.IDDISTRITOSUN).HasColumnName("IDDISTRITOSUN");
            this.Property(t => t.DISTRITOSUN).HasColumnName("DISTRITOSUN");
            this.Property(t => t.PROVINCIA).HasColumnName("PROVINCIA");
            this.Property(t => t.DEPARTAMENTO).HasColumnName("DEPARTAMENTO");
        }
    }
}
